| 1: | active(first(0,X)) | → mark(nil) | |
| 2: | active(first(s(X),cons(Y,Z))) | → mark(cons(Y,first(X,Z))) | |
| 3: | active(from(X)) | → mark(cons(X,from(s(X)))) | |
| 4: | active(first(X1,X2)) | → first(active(X1),X2) | |
| 5: | active(first(X1,X2)) | → first(X1,active(X2)) | |
| 6: | active(s(X)) | → s(active(X)) | |
| 7: | active(cons(X1,X2)) | → cons(active(X1),X2) | |
| 8: | active(from(X)) | → from(active(X)) | |
| 9: | first(mark(X1),X2) | → mark(first(X1,X2)) | |
| 10: | first(X1,mark(X2)) | → mark(first(X1,X2)) | |
| 11: | s(mark(X)) | → mark(s(X)) | |
| 12: | cons(mark(X1),X2) | → mark(cons(X1,X2)) | |
| 13: | from(mark(X)) | → mark(from(X)) | |
| 14: | proper(first(X1,X2)) | → first(proper(X1),proper(X2)) | |
| 15: | proper(0) | → ok(0) | |
| 16: | proper(nil) | → ok(nil) | |
| 17: | proper(s(X)) | → s(proper(X)) | |
| 18: | proper(cons(X1,X2)) | → cons(proper(X1),proper(X2)) | |
| 19: | proper(from(X)) | → from(proper(X)) | |
| 20: | first(ok(X1),ok(X2)) | → ok(first(X1,X2)) | |
| 21: | s(ok(X)) | → ok(s(X)) | |
| 22: | cons(ok(X1),ok(X2)) | → ok(cons(X1,X2)) | |
| 23: | from(ok(X)) | → ok(from(X)) | |
| 24: | top(mark(X)) | → top(proper(X)) | |
| 25: | top(ok(X)) | → top(active(X)) | |
| 26: | ACTIVE(first(s(X),cons(Y,Z))) | → CONS(Y,first(X,Z)) | |
| 27: | ACTIVE(first(s(X),cons(Y,Z))) | → FIRST(X,Z) | |
| 28: | ACTIVE(from(X)) | → CONS(X,from(s(X))) | |
| 29: | ACTIVE(from(X)) | → FROM(s(X)) | |
| 30: | ACTIVE(from(X)) | → S(X) | |
| 31: | ACTIVE(first(X1,X2)) | → FIRST(active(X1),X2) | |
| 32: | ACTIVE(first(X1,X2)) | → ACTIVE(X1) | |
| 33: | ACTIVE(first(X1,X2)) | → FIRST(X1,active(X2)) | |
| 34: | ACTIVE(first(X1,X2)) | → ACTIVE(X2) | |
| 35: | ACTIVE(s(X)) | → S(active(X)) | |
| 36: | ACTIVE(s(X)) | → ACTIVE(X) | |
| 37: | ACTIVE(cons(X1,X2)) | → CONS(active(X1),X2) | |
| 38: | ACTIVE(cons(X1,X2)) | → ACTIVE(X1) | |
| 39: | ACTIVE(from(X)) | → FROM(active(X)) | |
| 40: | ACTIVE(from(X)) | → ACTIVE(X) | |
| 41: | FIRST(mark(X1),X2) | → FIRST(X1,X2) | |
| 42: | FIRST(X1,mark(X2)) | → FIRST(X1,X2) | |
| 43: | S(mark(X)) | → S(X) | |
| 44: | CONS(mark(X1),X2) | → CONS(X1,X2) | |
| 45: | FROM(mark(X)) | → FROM(X) | |
| 46: | PROPER(first(X1,X2)) | → FIRST(proper(X1),proper(X2)) | |
| 47: | PROPER(first(X1,X2)) | → PROPER(X1) | |
| 48: | PROPER(first(X1,X2)) | → PROPER(X2) | |
| 49: | PROPER(s(X)) | → S(proper(X)) | |
| 50: | PROPER(s(X)) | → PROPER(X) | |
| 51: | PROPER(cons(X1,X2)) | → CONS(proper(X1),proper(X2)) | |
| 52: | PROPER(cons(X1,X2)) | → PROPER(X1) | |
| 53: | PROPER(cons(X1,X2)) | → PROPER(X2) | |
| 54: | PROPER(from(X)) | → FROM(proper(X)) | |
| 55: | PROPER(from(X)) | → PROPER(X) | |
| 56: | FIRST(ok(X1),ok(X2)) | → FIRST(X1,X2) | |
| 57: | S(ok(X)) | → S(X) | |
| 58: | CONS(ok(X1),ok(X2)) | → CONS(X1,X2) | |
| 59: | FROM(ok(X)) | → FROM(X) | |
| 60: | TOP(mark(X)) | → TOP(proper(X)) | |
| 61: | TOP(mark(X)) | → PROPER(X) | |
| 62: | TOP(ok(X)) | → TOP(active(X)) | |
| 63: | TOP(ok(X)) | → ACTIVE(X) | |